/**
 * 业务逻辑中间件,读取某个json文件的数据
 * 1.第3层中间件
 * 2.读取文件内容
 *      a.获取URL请求路径  const url = ctx.request.url
 *      b.根据URL请求路径,拼接出文件的绝对路径
 *          let filePath = url.replace('/api', '')
 *          filePath = '../data' + filePath + '.json'
 *          filePath = path.join(__dirname, filePath)  //需要读取的文件的绝对路径
 *      c.读取这个文件的内容: 使用 fs 模块中的 readFile 方法进行实现
 * 3.设置响应体 ctx.response.body
 */

const path = require('path')
const fileUtils = require('../utils/file_utils')
module.exports = async (ctx, next)=>{
    // 1.获取URL请求路径
    const url = ctx.request.url
    // console.log(url)  // /api/seller

    // 2.根据URL请求路径,拼接出文件的绝对路径    /api/seller  => ../data/seller.json
    let filePath = url.replace('/api', '')
    filePath = '../data' + filePath + '.json'
    filePath = path.join(__dirname, filePath)
    // console.log(filePath)

    // 3.读取这个文件的内容
    try {
        const ret = await fileUtils.getFileJsonData(filePath)
        ctx.response.body = ret
    } catch(error){
        const errorMsg = { message: '读取文件内容失败, 文件资源不存在', status: 404 }
        ctx.response.body = JSON.stringify(errorMsg)
    }

    await next()
}
